package cn.com.dcsgo.domain.dto;

import cn.com.dcsgo.common.validation.InIfNotNull;
import cn.com.dcsgo.common.validation.NotBlankIfNotNull;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 更新角色 请求参数
 *
 * @author Dcsgo
 * @since 1/6/2025 下午 3:30
 */
@Data
@Schema(description = "更新角色 请求参数")
public class SysRoleUpdateDTO implements Serializable {
    /**
     * 角色ID
     */
    @NotNull(message = "角色编号不能为空")
    @Schema(description = "角色ID")
    private Long roleId;

    /**
     * 角色名称
     */
    @NotBlankIfNotNull(message = "角色名称不能为空白字符串")
    @Schema(description = "角色名称")
    private String roleName;

    /**
     * 显示顺序
     */
    @Schema(description = "显示顺序")
    private Integer roleSort;

    /**
     * 角色备注
     */
    @NotBlankIfNotNull(message = "角色备注不能为空白字符串")
    @Schema(description = "角色备注")
    private String remark;

    /**
     * 角色状态（0正常 1停用）
     */
    @InIfNotNull(message = "角色状态只能为：0正常，1停用", value = {"0", "1"})
    @Schema(description = "角色状态（0正常 1停用）")
    private Integer status;

    @Serial
    private static final long serialVersionUID = 1L;
}
